package top.drose;

import java.util.Arrays;
import java.util.Scanner;

//找出相同的数对
public class P41_1 {
    static final int N=200005;
    static Scanner sc=new Scanner(System.in);
    public static void main(String[] args) {
        int n=sc.nextInt();
        int c=sc.nextInt();
        int[] arr=new int[N];
        Arrays.fill(arr,Integer.MAX_VALUE);
        for(int i=0;i<n;i++){//读入数据
            arr[i]=sc.nextInt();
        }
        //对于数组部分排序， 左闭右开
        Arrays.sort(arr,0,n);

        long ans=0;
        //对于arr[i]，往后找是否有arr[j]-arr[i]=c
        //同时如果找到了j，需要判断是否有相同元素，
        //所以这里要用第三个指针k
        int j=0;
        int k=0;
        for(int i=0;i<n;i++){
            //当j为n-1时，满足条件，再次进入这个循环导致j=n，从而下面的if arr[j]越界

            while(j<n&&arr[j]-arr[i]<c){
                j++;
            }
            //这里可以改成k从j开始，继续往后数到第一个不一样的
            while(k<n&&arr[k]-arr[i]<=c){//对于k的统计要
                k++;
            }
            if(arr[j]-arr[i]==c&&arr[k-1]-arr[i]==c&&k-1>=0){
                ans+=k-j;
                //k到j间的数字是一样的，之间的长度就是对于
                //arr[i]满足条件的结果个数
            }
        }
        System.out.printf("%d",ans);

        /**
          in
          6 3
          8 4 5 7 7 4

         out 5
         */
    }
}
